#ifndef VIEWSWITCHBUTTON_H
#define VIEWSWITCHBUTTON_H

#include <QWidget>
#include <QPushButton>

namespace Ui {
class ViewSwitchButton;
}

// 直接继承自QWidget的类, 需自己重写paintEvent, 不然无法在主界面显示
// 解决方法有两个:
// 1 : 继承其他的类(如QPushButton)
// 2 : 添加QWidget类型子控件, 用这个子控件来设置样式
// 顺带一提, 我最开始选择了法一, 所以命名为ViewSwitchButton
// 后来改为法二...名字就懒得改了
class ViewSwitchButton : public QWidget
{
    Q_OBJECT

public:
    explicit ViewSwitchButton(QWidget *parent = nullptr, int index = -1);
    ~ViewSwitchButton();
    void selected(bool selected = false);
    void setIcon(const QString& path = "");
    void setText(const QString& text = "");
private:
    void setStyle();

private slots:
    void on_pushButton_clicked();

signals:
    void viewSwitchButton_clicked(int index);

private:
    int _index;
    bool _selected;
    Ui::ViewSwitchButton *ui;
};

#endif // VIEWSWITCHBUTTON_H
